/**
 * 站点配置
 */
import { defineConfig } from "vitepress";
import { chineseSearchOptimize, pagefindPlugin } from "vitepress-plugin-pagefind";

// 站点配置可以定义站点的全局设置。
export default defineConfig({
    // 站点的标题。使用默认主题时，这将显示在导航栏中。
    title: "Pure Ui",

    // 站点的描述。这将呈现为页面 HTML 中的 <meta> 标签。
    description: "轻量、简洁的 UI 组件库，不给项目带来过多负担，以简洁的方式实现前端开发",

    // 要在页面 HTML 的 <head> 标签中呈现的其他元素。用户添加的标签在结束 head 标签之前呈现，在 VitePress 标签之后。
    head: [
        // 站点图标
        ["link", { rel: "icon", href: "/favicon.ico" }],
    ],

    // 站点的 lang 属性
    lang: "zh-cn",

    // 站点将部署到的 base URL。
    base: "/",

    // 相对于项目根目录的 markdown 文件所在的文件夹。
    srcDir: "./src",

    // 是否启用深色模式
    appearance: true,

    // 是否使用 Git 获取每个页面的最后更新时间戳。时间戳将包含在每个页面的页面数据中，可通过 useData 访问。
    lastUpdated: true,

    // 当设置为 true 时，VitePress 不会因为死链而导致构建失败。
    ignoreDeadLinks: true,

    // 主题相关配置
    themeConfig: {
        // 导航栏上显示的 Logo，位于站点标题前。可以接受一个路径字符串，或者一个对象来设置在浅色/深色模式下不同的 Logo。
        logo: "/logo.png",

        // 可以自定义此项以替换导航中的默认站点标题 (应用配置中的 title)。当设置为 false 时，导航中的标题将被禁用。这在当 logo 已经包含站点标题文本时很有用。
        siteTitle: "PureUi 官方中文文档",

        // 导航菜单项的配置
        nav: [],

        // 侧边栏菜单项的配置
        sidebar: {
            "/": [
                { text: "起步", link: "index" },
                { text: "工具函数 Functions", link: "/docs/functions" },
                { text: "路由拦截器 Router", link: "/docs/router" },
                { text: "请求工具 Http", link: "/docs/http" },
                { text: "辅助类", link: "/docs/classes" },
                { text: "图标 Icon", link: "/docs/icon" },
                { text: "加载 Loading", link: "/docs/loading" },
                { text: "按钮 Button", link: "/docs/button" },
                { text: "单元格 Cell", link: "/docs/cell" },
                { text: "空内容 Empty", link: "/docs/empty" },
                { text: "加载更多 LoadMore", link: "/docs/loadmore" },
                { text: "块元素 Block", link: "/docs/block" },
                { text: "图片 Image", link: "/docs/image" },
                { text: "徽标 Badge", link: "/docs/badge" },
                { text: "标签 Tag", link: "/docs/tag" },
                { text: "间隔 Gap", link: "/docs/gap" },
                { text: "标签/选项卡 Tabs", link: "/docs/tabs" },
                { text: "电梯导航/联动菜单 Elevator", link: "/docs/elevator" },
                { text: "瀑布流 Waterfall", link: "/docs/waterfall" },
                { text: "单选框 Radio", link: "/docs/radio" },
                { text: "多选框 Checkbox", link: "/docs/checkbox" },
                { text: "开关选择器 Switch", link: "/docs/switch" },
                { text: "遮罩层 Overlay", link: "/docs/overlay" },
                { text: "弹出层 Popup", link: "/docs/popup" },
                { text: "对话框 Modal", link: "/docs/modal" },
                { text: "滚动通知 NoticeBar", link: "/docs/notice-bar" },
                { text: "导航栏 NavBar", link: "/docs/navbar" },
                { text: "标签栏 Tabbar", link: "/docs/tabbar" },
                { text: "超链接 Link", link: "/docs/link" },
                { text: "日历 Calendar", link: "/docs/calendar" },
                { text: "级联选择器 Cascader", link: "/docs/cascader" },
                { text: "字段 Field", link: "/docs/field" },
                { text: "表单 Form", link: "/docs/form" },
                { text: "输入框 Input", link: "/docs/input" },
                { text: "轮播 Swiper", link: "/docs/swiper" },
                { text: "指示器 Indicator", link: "/docs/indicator" },
                { text: "左/右切换器 PrevNext", link: "/docs/prev-next" },
                { text: "步进器 Stepper", link: "/docs/stepper" },
                { text: "布局 Layout", link: "/docs/layout" },
                { text: "验证码倒计时 CodeCountdown", link: "/docs/code-countdown" },
                { text: "验证码输入框 CodeInput", link: "/docs/code-input" },
                { text: "金额 Amount", link: "/docs/amount" },
                { text: "头像 Avatar", link: "/docs/avatar" },
                { text: "搜索 Search", link: "/docs/search" },
                { text: "多行输入框 Textarea", link: "/docs/textarea" },
                { text: "关联选择器 RelationSelect", link: "/docs/relation-select" },
            ],
        },

        // 定义侧边栏组件在 doc 布局中的位置
        aside: true,

        // 大纲中显示的标题级别
        outline: {
            // outline 中要显示的标题级别。
            // 单个数字表示只显示该级别的标题。
            // 如果传递的是一个元组，第一个数字是最小级别，第二个数字是最大级别。
            // `'deep'` 与 `[2, 6]` 相同，将显示从 `<h2>` 到 `<h6>` 的所有标题。
            level: [2, 3, 4],

            // 显示在 outline 上的标题。
            label: "导航",
        },

        // 可以定义此选项以在导航栏中展示带有图标的社交帐户链接
        socialLinks: [
            {
                icon: {
                    svg: `<svg t="1727786811259" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1537" width="128" height="128"><path d="M512 1024C229.222 1024 0 794.778 0 512S229.222 0 512 0s512 229.222 512 512-229.222 512-512 512z m259.149-568.883h-290.74a25.293 25.293 0 0 0-25.292 25.293l-0.026 63.206c0 13.952 11.315 25.293 25.267 25.293h177.024c13.978 0 25.293 11.315 25.293 25.267v12.646a75.853 75.853 0 0 1-75.853 75.853h-240.23a25.293 25.293 0 0 1-25.267-25.293V417.203a75.853 75.853 0 0 1 75.827-75.853h353.946a25.293 25.293 0 0 0 25.267-25.292l0.077-63.207a25.293 25.293 0 0 0-25.268-25.293H417.152a189.62 189.62 0 0 0-189.62 189.645V771.15c0 13.977 11.316 25.293 25.294 25.293h372.94a170.65 170.65 0 0 0 170.65-170.65V480.384a25.293 25.293 0 0 0-25.293-25.267z" fill="#C71D23" p-id="1538"></path></svg>`,
                },
                link: "https://gitee.com/chenshuang-jinli/pure-ui",
            },
        ],

        // 页脚配置。可以添加 message 和 copyright。由于设计原因，仅当页面不包含侧边栏时才会显示页脚。
        footer: {
            message: "基于 MIT 许可发布",
            copyright: "版权所有 © 2024-2029 济南晨霜信息技术有限公司",
        },

        // 编辑链接可让显示链接以编辑 Git 管理服务 (例如 GitHub 或 GitLab) 上的页面
        editLink: {
            pattern: "https://gitee.com/chenshuang-jinli/pure-ui-docs",
            text: "在 Gitee 上编辑此页面",
        },

        // 自定义上次更新的文本和日期格式
        lastUpdated: {
            text: "上次更新时间",
            formatOptions: {
                dateStyle: "full",
                timeStyle: "medium",
            },
        },

        // 自定义出现在上一页和下一页链接上方的文本
        docFooter: {
            prev: "上一页",
            next: "下一页",
        },

        // 用于自定义深色模式开关标签，该标签仅在移动端视图中显示
        darkModeSwitchLabel: "深色模式",

        // 用于自定义悬停时显示的浅色模式开关标题
        lightModeSwitchTitle: "切换到浅色模式",

        // 用于自定义悬停时显示的深色模式开关标题
        darkModeSwitchTitle: "切换到深色模式",

        // 用于自定义侧边栏菜单标签，该标签仅在移动端视图中显示
        sidebarMenuLabel: "导航",

        // 用于自定义返回顶部按钮的标签，该标签仅在移动端视图中显示
        returnToTopLabel: "返回顶部",

        // 是否在 markdown 中的外部链接旁显示外部链接图标
        externalLinkIcon: false,
    },

    // vite 配置
    vite: {
        // 开发服务器选项
        server: {
            // 指定开发服务器端口
            port: 10001,
        },

        // 使用到的插件
        plugins: [
            // 搜索插件
            pagefindPlugin({
                // 中文搜索优化
                customSearchQuery: chineseSearchOptimize,
                btnPlaceholder: "搜索",
                placeholder: "搜索文档",
                emptyText: "空空如也",
                heading: "共: {{searchResult}} 条结果",
                toSelect: "选择",
                toNavigate: "切换",
                toClose: "关闭",
                searchBy: "搜索提供者",
            }),
        ],
    },
});
